package top.yangyitao.lockManager.lock;

/**
 *   @author: eetal
 *   @Date: 2019/10/5 20:44
 *   @Description: lock subject for client
 */
public abstract class LockSubject<K> {
    protected LockSubject(){}
    public abstract void initialize(K k);
    public abstract void destroy();
    public abstract boolean isHeldByCurrentThread();
    public abstract void lock();
    public abstract void tryLock();
    public abstract void unlock();
    public abstract boolean equalKey(K k);
    public abstract boolean isAlive();
}
